10 REM****************** 20 REM* 18 UHREN *** 30 REM* EIN PROGRAMM *** 40 REM* FUER DEN C64 *** 50 REM* *** 60 REM* VON *** 70 REM* G. KRAMER *** 80 REM* *** 90 REM****************** 100 GOSUB200 110 GOSUB720 120 GOSUB1350 130 IFS=0THEN160 140 GOSUB2610 150 S=0:GOTO110 160 END 170 REM****************** 180 REM* ANFANGSWERTE *** 190 REM****************** 200 POKE53281,0:POKE53280,0 210 PRINTCHR$(147) 220 B=1024:F=55296 230 A=RND(-TI) 240 DIMZ(17,2),K(7,1),V(7,4) 250 DIMR(11),S(4) 260 DIMZM(17),KM(7),SM(4) 270 A=PEEK(61)+256*PEEK(62) 280 POKE65,AAND255:POKE66,A/256 290 FORI=0TO5 300 READR(I):R(I+6)=-R(I):NEXT 310 DATA-80,-79,-38,2,42,81 320 A=PEEK(61)+256*PEEK(62) 330 POKE65,AAND255:POKE66,A/256 340 FORI=0TO7:FORJ=0TO4 350 READV(I,J):NEXTJ,I 360 RETURN 370 DATA0,1,3,4,6,6,3,4,7,7 380 DATA2,1,4,5,4,8,4,5,7,5 390 DATA9,10,12,13,2,15,12,13,16,3 400 DATA11,10,13,14,0,17,13,14,16,1 410 REM********************* 420 REM* ZEILEN LOESCHEN *** 430 REM********************* 440 FORI=ATOA0 450 POKE781,I:SYS59903:NEXT 460 RETURN 470 REM******************* 480 REM* GRUNDSTELLUNG *** 490 REM******************* 500 A=PEEK(61)+256*PEEK(62) 510 POKE65,AAND255:POKE66,A/256 520 FORI=0TO17 530 Z(I,0)=0 540 READZ(I,1) 550 IFI>7THEN580 560 K(I,0)=0 570 READK(I,1) 580 NEXT:RETURN 590 DATA123,246,129,486,135,252 600 DATA363,492,369,266,375,506 610 DATA603,272,609,512,615,143 620 DATA149,155,383,389,395,623 630 DATA629,635 640 REM******************* 650 REM* CURSOR SETZEN *** 660 REM******************* 670 POKE214,ZE:POKE211,SP 680 SYS58640:RETURN 690 REM*************** 700 REM* TITELBILD *** 710 REM*************** 720 A0$=CHR$(113)+CHR$(113)+CHR$(113) 730 A1$=CHR$(113)+CHR$(32)+CHR$(32) 740 A1$=A1$+CHR$(32)+CHR$(113) 750 A2$=CHR$(117)+CHR$(99)+CHR$(105) 760 A3$=CHR$(98)+CHR$(18)+CHR$(123) 770 A3$=A3$+CHR$(146)+CHR$(98) 780 A4$=CHR$(106)+CHR$(99)+CHR$(107) 790 PRINTCHR$(147) 800 FORI=1TO3:FORJ=0TO4 810 IFJ=0THENA5$=CHR$(156)+A0$ 820 IFJ=1THENA5$=CHR$(156)+A1$ 830 IFJ=4THENA5$=CHR$(156)+A0$ 840 FORK=0TO5 850 A=1:IF(J=0)OR(J=4)THENA=2 860 IFK>0THENA=A+(A-1) 870 IFK=3THENA=A+2 880 PRINTSPC(A)A5$; 890 NEXT:PRINT 900 NEXT:PRINT:NEXT 910 PRINTCHR$(150) 920 FORI=99TO739STEP40 930 POKEF+I,13:POKEB+I,66 940 NEXT 950 FORI=760TO798 960 POKEF+I,13:POKEB+I,64 970 NEXT 980 POKEB+779,113 990 PRINTCHR$(19):PRINT:PRINT:PRINT 1000 PRINT:FORI=0TO1:FORK=0TO2 1010 FORJ=0TO3 1020 A5$=A2$ 1030 IFK=1THENA5$=A3$ 1040 IFK=2THENA5$=A4$ 1050 A=5:IFJ>0THENA=3 1060 IFJ=2THENA=11 1070 PRINTSPC(A)A5$;:NEXT 1080 PRINT:NEXT 1090 PRINT:PRINT:PRINT 1100 NEXT 1110 SP=15:ZE=20:GOSUB670 1120 PRINTCHR$(154)"18 UHREN":PRINT 1130 PRINTTAB(11)"EIN PROGRAMM VON" 1140 PRINTCHR$(158) 1150 PRINTTAB(12)"GUENTER KRAMER"; 1160 GETA$:IFA$=""THEN1160 1170 RETURN 1180 REM******************** 1190 REM* ANZAHL SPIELER *** 1200 REM******************** 1210 A=20:A0=24:GOSUB440 1220 PRINTCHR$(158)CHR$(19) 1230 SP=0:ZE=20:GOSUB670 1240 PRINT"BITTE EINGEBEN:" 1250 PRINTTAB(14)"1 = EIN SPIELER" 1260 PRINTTAB(14)"2 = ZWEI SPIELER" 1270 POKE198,0 1280 GETA$:IFA$=""THEN1280 1290 S=VAL(A$) 1300 IF(S<1)OR(S>2)THEN1280 1310 RETURN 1320 REM********************** 1330 REM* SPIEL EINSTELLEN *** 1340 REM********************** 1350 A=20:A0=24:GOSUB440:GOSUB500 1360 FORI=0TO17 1370 POKEF+R(Z(I,2))+Z(I,1),7 1380 NEXT 1390 PRINTCHR$(158)CHR$(19) 1400 SP=0:ZE=20:GOSUB670 1410 PRINT"BITTE EINGEBEN:" 1420 PRINTTAB(14)"F1 = ZUFALLSSPIEL" 1430 PRINTTAB(14)"F3 = GRUNDSTELLUNG" 1440 PRINTTAB(14)"F5 = SPIEL LADEN" 1450 PRINTTAB(14)"F8 = SPIELENDE"; 1460 POKE198,0:S=0 1470 GETA$:IFA$=""THEN1470 1480 A=ASC(A$):IFA=133THEN1530 1490 IFA=140THEN1550 1500 IFA=134THEN1540 1510 IFA<>135THEN1470 1520 EI=999:GOSUB4140:GOTO1550 1530 GOSUB1590 1540 GOSUB1210 1550 RETURN 1560 REM****************** 1570 REM* ZUFALLSSPIEL *** 1580 REM****************** 1590 FORI0=0TO3:I1=INT(RND(0)*2) 1600 IFAI1=0THENI1=-1 1610 FORI2=0TOINT(RND(0)*7) 1620 A=I0:A0=I1:GOSUB1870:NEXTI2,I0 1630 FORI=1TO7STEP2 1640 A=INT(RND(0)*12) 1650 Z(I,0)=A 1660 A=INT(RND(0)*12) 1670 Z(I+9,0)=A 1680 NEXT 1690 A=INT(RND(0)*12) 1700 Z(4,0)=A 1710 A=INT(RND(0)*12) 1720 Z(13,0)=A 1730 GOSUB3370 1740 RETURN 1750 REM******************* 1760 REM* KNOPF EIN/AUS *** 1770 REM******************* 1780 K(A,0)=(K(A,0)+1)AND1 1790 A1=10:IFK(A,0)=1THENA1=7 1800 FORI=-1TO1:FORJ=-40TO40STEP40 1810 POKEF+K(A,1)+I+J,A1 1820 NEXTJ,I 1830 RETURN 1840 REM****************** 1850 REM* KNOPF DREHEN *** 1860 REM****************** 1870 FORI=0TO1 1880 Z(V(A,0),2)=A0 1890 IFK(A,0)=0THEN1920 1900 FORJ=1TO3 1910 Z(V(A,J),2)=A0:NEXT 1920 A0=A0*-1:A=V(A,4) 1930 NEXT 1940 FORI=0TO1:FORJ=0TO7 1950 IFK(J,0)=0THEN2050 1960 A0=0:FORK=0TO3 1970 A0=Z(V(J,K),2) 1980 IFA0<>0THENK=4 1990 NEXT 2000 IFA0=0THEN2050 2010 Z(V(V(J,4),0),2)=-A0 2020 FORK=0TO3 2030 Z(V(J,K),2)=A0 2040 NEXT 2050 NEXTJ,I 2060 FORI=0TO17 2070 A=Z(I,2) 2080 IFA=0THEN2160 2090 A0=Z(I,0):A1=Z(I,1) 2100 POKEF+A1+R(A0),4 2110 A0=A0+A 2120 IFA0=12THENA0=0 2130 IFA0<0THENA0=11 2140 POKEF+A1+R(A0),7 2150 Z(I,0)=A0:Z(I,2)=0 2160 NEXT:RETURN 2170 REM************* 2180 REM* EINGABE *** 2190 REM************* 2200 EI=0 2210 POKE56322,224 2220 A=PEEK(56320) 2230 IFAS=1THENA=PEEK(56321) 2240 POKE56322,255 2250 IF(AAND31)<31THEN2280 2260 GETA$:IFA$=""THEN2340 2270 EI=ASC(A$):GOTO2330 2280 IF(AAND1)=0THENEI=1 2290 IF(AAND2)=0THENEI=2 2300 IF(AAND4)=0THENEI=3 2310 IF(AAND8)=0THENEI=4 2320 IF(AAND16)=0THENEI=5 2330 POKE198,0 2340 RETURN 2350 REM********************** 2360 REM* BILDUNTERSCHRIFT *** 2370 REM********************** 2380 A=20:A0=24:GOSUB440 2390 PRINTCHR$(19)CHR$(158) 2400 SP=0:ZE=20:GOSUB670 2410 PRINT"F1 = SPIELSTAND MERKEN" 2420 PRINT"F3 = SPIELSTAND ZURUECK" 2430 PRINT"F7 = SPIEL SPEICHERN" 2440 PRINT"F8 = SPIEL ABBRECHEN" 2450 POKEF+828,1:POKEB+828,85 2460 FORI=829TO837 2470 POKEF+I,1:POKEB+I,64:NEXT 2480 POKEF+838,1:POKEB+838,73 2490 POKEF+878,1:POKEB+878,66 2500 POKEF+918,1:POKEB+918,66 2510 POKEF+958,1:POKEB+958,75 2520 FORI=957TO949STEP-1 2530 POKEF+I,1:POKEB+I,64:NEXT 2540 POKEF+948,1:POKEB+948,74 2550 POKEF+908,1:POKEB+908,66 2560 POKEF+868,1:POKEB+868,66 2570 RETURN 2580 REM****************** 2590 REM* SPIEL LAEUFT *** 2600 REM****************** 2610 GOSUB2380:IFEI=999THEN2650 2620 S(1)=0:S(2)=4:S(3)=0:S(4)=0:AS=0 2630 AS=AS+1:IFAS>STHENAS=1 2640 S(AS+2)=S(AS+2)+1 2650 A$=STR$(S(AS+2)) 2660 ZE=0:SP=17+INT(LEN(A$)/2) 2670 GOSUB670:PRINTCHR$(158)A$ 2680 IFS=1THEN2720 2690 A$=STR$(S(3)+S(4)) 2700 ZE=0:SP=7+20*(AS-1)+INT(LEN(A$)/2) 2710 GOSUB670:PRINTA$ 2720 ZE=21:SP=29:GOSUB670 2730 A=153:IFAS=2THENA=150 2740 PRINTCHR$(A)"SPIELER"AS 2750 PRINTTAB(31)"JOY"AS 2760 C=K(S(AS),1) 2770 POKEB+C,86 2780 GOSUB2200 2790 FORI=0TO50 2800 IFEI>0THEN2850 2810 POKEB+C,91 2820 GOSUB2200 2830 FORI=0TO50 2840 IFEI=0THEN2770 2850 POKEB+C,219:A=S(AS) 2860 IFEI=2THEN2990 2870 IFEI=1THEN3040 2880 IFEI=3THENA0=-1:GOTO2960 2890 IFEI=4THENA0=1:GOTO2960 2900 IFEI=5THENGOSUB1780 2910 IFEI=133THENGOSUB3140 2920 IFEI=134THENGOSUB3240:GOTO2650 2930 IFEI=136THENGOSUB3820:GOTO2650 2940 IFEI=140THEN3100 2950 GOTO2760 2960 GOSUB1870 2970 IFS=2THEN2630 2980 GOTO2640 2990 S(AS)=S(AS)+1 3000 IF(S=2)AND(S(AS)=4)THENS(AS)=0 3010 IFS(AS)<8THEN2760 3020 S(AS)=0:IFAS=2THENS(AS)=4 3030 GOTO2760 3040 S(AS)=S(AS)-1 3050 IF(AS=2)AND(S(AS)=3)THENS(AS)=7 3060 IFS(AS)>=0THEN2760 3070 S(AS)=7 3080 IF(S=2)THENS(AS)=3 3090 GOTO2760 3100 RETURN 3110 REM*********************** 3120 REM* SPIELSTAND MERKEN *** 3130 REM*********************** 3140 FORI=0TO17 3150 ZM(I)=Z(I,0) 3160 IFI>7THEN3190 3170 KM(I)=K(I,0) 3180 IFI<5THENSM(I)=S(I) 3190 NEXT 3200 AM=AS:RETURN 3210 REM************************ 3220 REM* SPIELSTAND ZURUECK *** 3230 REM************************ 3240 FORI=0TO17 3250 A=Z(I,0):Z(I,0)=ZM(I):ZM(I)=A 3260 IFI>7THEN3300 3270 A=K(I,0):K(I,0)=KM(I):KM(I)=A 3280 IFI>4THEN3300 3290 A=S(I):S(I)=SM(I):SM(I)=A 3300 NEXT 3310 A=0:A0=0:GOSUB440 3320 A=AS:AS=AM:AM=A 3330 GOSUB3370:GOSUB3450:RETURN 3340 REM******************* 3350 REM* ZEIGER SETZEN *** 3360 REM******************* 3370 FORI=0TO17:A=Z(I,1)+F 3380 FORJ=0TO11:A0=4 3390 IFJ=Z(I,0)THENA0=7 3400 POKEA+R(J),A0 3410 NEXTJ,I:RETURN 3420 REM******************** 3430 REM* KNOEPFE SETZEN *** 3440 REM******************** 3450 FORA=0TO7 3460 GOSUB1790 3470 NEXT:RETURN 3480 REM*********************** 3490 REM* ABFRAGE DATEINAME *** 3500 REM*********************** 3510 A=20:A0=24:GOSUB440 3520 PRINTCHR$(19)CHR$(156) 3530 SP=0:ZE=20:GOSUB670 3540 PRINTA$ 3550 PRINT 3560 PRINT"NAME DER DATEI?" 3570 A0$="":POKE198,0:A0=0 3580 GETA$ 3590 IF(A1$="0")OR(A0>0)THEN3620 3600 IFA$="$"THENGOSUB4410 3610 IFA0$<>""THEN3780 3620 IFA0=0THEN3660 3630 IFA$=CHR$(20)THEN3750 3640 IFA$=CHR$(13)THEN3700 3650 IFA$=CHR$(32)THEN3690 3660 IFA$<"."THEN3580 3670 IFA$<":"THEN3690 3680 IF(A$<"A")OR(A$>"Z")THEN3580 3690 A0$=A0$+A$:A0=A0+1 3700 SP=16:ZE=22:GOSUB670 3710 PRINTA0$+CHR$(32) 3720 IFA$=CHR$(13)THEN3780 3730 IFA0<16THEN3580 3740 GOTO3780 3750 A0=A0-1 3760 A0$=LEFT$(A0$,A0) 3770 GOTO3700 3780 RETURN 3790 REM********************* 3800 REM* SPIEL SPEICHERN *** 3810 REM********************* 3820 A$="SPIEL SPEICHERN" 3830 A1$="0":GOSUB3510 3840 OPEN1,8,15 3850 PRINT#1,"S:"+A0$ 3860 CLOSE1 3870 OPEN15,8,15 3880 OPEN3,8,3,"0:"+A0$+",U,W" 3890 INPUT#15,A0,A$,A1,A2 3900 IFA0=0THEN4010 3910 CLOSE3:CLOSE15 3920 PRINTCHR$(158)A0;A$;A1;A2 3930 PRINTCHR$(156)"ABBRECHEN?[160](J/N)"; 3940 POKE198,0 3950 GETA$ 3960 IFA$="J"THEN4090 3970 IFA$<>"N"THEN3950 3980 A=23:A0=24:GOSUB440 3990 ZE=23:SP=0:GOSUB670 4000 GOTO3870 4010 FORI=0TO17 4020 PRINT#3,Z(I,0):NEXT 4030 FORI=0TO7 4040 PRINT#3,K(I,0):NEXT 4050 PRINT#3,S:PRINT#3,AS 4060 FORI=1TO4 4070 PRINT#3,S(I):NEXT 4080 CLOSE3:CLOSE15 4090 GOSUB2380 4100 RETURN 4110 REM***************** 4120 REM* SPIEL LADEN *** 4130 REM***************** 4140 A$="SPIEL LADEN" 4150 A1$="1":GOSUB3510 4160 OPEN15,8,15 4170 OPEN3,8,3,"0:"+A0$+",U,R" 4180 INPUT#15,A0,A$,A1,A2 4190 IFA0=0THEN4280 4200 CLOSE3:CLOSE15 4210 PRINTCHR$(158)A0;A$;A1;A2 4220 PRINTCHR$(156)"ABBRECHEN?[160](J/N)"; 4230 POKE198,0 4240 GETA$ 4250 IFA$="J"THEN4370 4260 IFA$="N"THEN4140 4270 GOTO4240 4280 FORI=0TO17 4290 INPUT#3,Z(I,0):NEXT 4300 FORI=0TO7 4310 INPUT#3,K(I,0):NEXT 4320 INPUT#3,S:INPUT#3,AS 4330 FORI=1TO4 4340 INPUT#3,S(I):NEXT 4350 CLOSE3:CLOSE15 4360 GOSUB3370:GOSUB3450 4370 RETURN 4380 REM************************ 4390 REM* NAME AUS DIRECTORY *** 4400 REM************************ 4410 OPEN1,8,0,"$" 4420 GET#1,A$,A$ 4430 GET#1,A$,A$,L$,H$ 4440 IFA$=""THENCLOSE1:GOTO4410 4450 A0$="" 4460 GET#1,A$:IFA$=""THEN4480 4470 A0$=A0$+A$:GOTO4460 4480 FORI=1TO16:A$=A$+CHR$(32):NEXT 4490 SP=16:ZE=22:GOSUB670 4500 PRINTA$ 4510 SP=16:ZE=22:GOSUB670 4520 A=ASC(A0$):IFA=18THEN4430 4530 A0$=RIGHT$(A0$,LEN(A0$)-1) 4540 IFA=32THEN4520 4550 IFA<>34THENCLOSE1:GOTO4410 4560 A=ASC(RIGHT$(A0$,1)) 4570 A0$=LEFT$(A0$,LEN(A0$)-1) 4580 IFA<>34THEN4560 4590 PRINTA0$ 4600 PRINT"OK?[160](J/N)" 4610 POKE198,0 4620 GETA$:IFA$="N"THEN4430 4630 IFA$<>"J"THEN4620 4640 CLOSE1:RETURN